# 官网参考属性：https://docs.python.org/zh-cn/3/library/logging.html#logrecord-attributes

import logging

# 默认值参数
def get_logger(name="automation05",
               level="INFO",
               format="%(asctime)s   %(levelname)s   %(name)s  %(message)s",
               file="log_huile.log"):
    # 1、得到一个日志收集器  logger
    # 要写日志/日记 需要有：笔记本，笔，日记内容
    # logger ---> 笔 专门去记录 class17的运行日志 （ class17标签，不是文件名）
    logger = logging.getLogger(name)
    logger.setLevel(level)

    # 2、设置日志的记录的位置，笔记本 or 黑板  or 墙壁
    # StreamHandler，默认的笔记本，即输出到控制台
    stream_Handler = logging.StreamHandler()
    stream_Handler.setLevel(level)
    fmt = logging.Formatter(format)
    stream_Handler.setFormatter(fmt)
    # 3、把笔和笔记本绑定到一起
    logger.addHandler(stream_Handler)

    # 3.2 另一个handler.将日志输出到文件
    file_handler = logging.FileHandler(file, encoding="utf-8")
    file_handler.setLevel(level)
    fmt2 = logging.Formatter(format)
    file_handler.setFormatter(fmt2)
    logger.addHandler(file_handler)

    return logger


if __name__ == '__main__':
    # 测试下，上面封装的函数是否正确
    logger = get_logger()
    logger.info("这是一个 info 级别的日志")
    logger.warning("这是一个 warning 级别的日志")
    logger.error("这是一个 error 级别的日志")

